using System;
using System.Collections.Generic;
using ns26;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("ClassChallengeUnlock")]
	public class ClassChallengeUnlock : Reward
	{
		public UIBObjectSpacing m_classFrameContainer => method_3<UIBObjectSpacing>("m_classFrameContainer");

		public UberText m_headerText => method_3<UberText>("m_headerText");

		public string m_appearSound => method_4("m_appearSound");

		public List<GameObject> m_classFrames => method_3<Class271<GameObject>>("m_classFrames")?.method_25();

		public ClassChallengeUnlock(IntPtr address, string className)
			: base(address, className)
		{
		}

		public ClassChallengeUnlock(IntPtr address)
			: this(address, "ClassChallengeUnlock")
		{
		}

		public static List<AdventureMissionDbfRecord> AdventureMissionsUnlockedByWingId(int wingId)
		{
			return MonoClass.smethod_15<Class271<AdventureMissionDbfRecord>>(TritonHs.MainAssemblyPath, "", "ClassChallengeUnlock", "AdventureMissionsUnlockedByWingId", new object[1] { wingId })?.method_25();
		}

		public new void Awake()
		{
			method_8("Awake");
		}

		public new void InitData()
		{
			method_8("InitData");
		}

		public new void PlayShowSounds()
		{
			method_8("PlayShowSounds");
		}

		public new void ShowReward(bool updateCacheValues)
		{
			method_8("ShowReward", updateCacheValues);
		}

		public new void HideReward()
		{
			method_8("HideReward");
		}

		public new void OnDataSet(bool updateVisuals)
		{
			method_8("OnDataSet", updateVisuals);
		}

		public void OnClicked(Reward reward, object userData)
		{
			method_8("OnClicked", reward, userData);
		}

		public void DestroyClassChallengeUnlock()
		{
			method_8("DestroyClassChallengeUnlock");
		}
	}
}
